#include <iostream>
#include <cstdio>
#include <vector>
#include <functional>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>
using namespace std;
using func_t =function<void()>;
int gcount=0;
vector<func_t>gfuncs;
void hander(int sig)
{
  for(auto x:gfuncs)
  {
    x();
  }
  cout<<"count: "<<gcount<<endl;
  int n=alarm(1);
  cout<<"剩余时间： "<<n<<endl;
}
int main()
{
  alarm(1);
  signal(14,hander);
  while(1)
  {
    pause();
    cout<<"我醒了。。。"<<endl;
    gcount++;
  }
}
// void WaitALL(int num)
// {
//   while(true)
//   {
//     int n=waitpid(-1,nullptr,WNOHANG);
//   }
//   cout<<"father get a signal: "<<num<<endl;
// }
// int main()
// {
//     signal(SIGCHLD,WaitALL);
//     pid_t id=fork();
//     if(id==0)
//     {
//         cout<<"I am a child,exit "<<endl;
//         sleep(3);
//         exit(3);
//     }
//     while(1)
//     {
//         cout<<"father processs is doing!"<<endl;
//     }
//     return 0;
// }